Hoạt động Giao thức Kerberos

Sau đây là mô tả một phiên giao dịch (giản lược) của Kerberos. Trong đó: AS = Máy chủ chứng thực (authentication server), TGS = Máy chủ cấp vé (ticket granting server), SS = Máy chủ dịch vụ (service server).

Một cách vắn tắt: người sử dụng chứng thực mình với máy chủ chứng thực AS, sau đó chứng minh với máy chủ cấp vé TGS rằng mình đã được chứng thực để nhận vé, cuối cùng chứng minh với máy chủ dịch vụ SS rằng mình đã được chấp thuận để sử dụng dịch vụ.

  1. Người sử dụng nhập tên (ID) và mật khẩu tại máy tính của mình (máy khách).
  2. Phần mềm máy khách thực hiện hàm băm một chiều trên mật khẩu nhận được. Kết quả sẽ được dùng làm khóa bí mật của người sử dụng.
  3. Phần mềm máy khách gửi một gói tin (không mã hóa) tới máy chủ dịch vụ AS để yêu cầu dịch vụ. Nội dung của gói tin đại ý: "người dùng XYZ muốn sử dụng dịch vụ". Cần chú ý là cả khóa bí mật lẫn mật khẩu đều không được gửi tới AS.
  4. AS kiểm tra định danh của người yêu cầu có nằm trong cơ sở dữ liệu của mình không. Nếu có thì AS gửi 2 gói tin sau tới người sử dụng:
    • Gói tin A: "Khóa phiên TGS/máy khách" được mã hóa với khóa bí mật của người sử dụng.
    • Gói tin B: "Vé chấp thuận" (bao gồm chỉ danh người sử dụng (ID), địa chỉ mạng của người sử dụng, thời hạn của vé và "Khóa phiên TGS/máy khách") được mã hóa với khóa bí mật của TGS.
  5. Khi nhận được 2 gói tin trên, phần mềm máy khách giải mã gói tin A để có khóa phiên với TGS. (Người sử dụng không thể giải mã được gói tin B vì nó được mã hóa với khóa bí mật của TGS). Tại thời điểm này, người dùng có thể nhận thực mình với TGS.
  6. Khi yêu cầu dịch vụ, người sử dụng gửi 2 gói tin sau tới TGS:
    • Gói tin C: Bao gồm "Vé chấp thuận" từ gói tin B và chỉ danh (ID) của yêu cầu dịch vụ.
    • Gói tin D: Phần nhận thực (bao gồm chỉ danh người sử dụng và thời điểm yêu cầu), mã hóa với "Khóa phiên TGS/máy khách".
  7. Khi nhận được 2 gói tin C và D, TGS giải mã D rồi gửi 2 gói tin sau tới người sử dụng:
    • Gói tin E: "Vé" (bao gồm chỉ danh người sử dụng, địa chỉ mạng người sử dụng, thời hạn sử dụng và "Khóa phiên máy chủ/máy khách") mã hóa với khóa bí mật của máy chủ cung cấp dịch vụ.
    • Gói tin F: "Khóa phiên máy chủ/máy khách" mã hóa với "Khóa phiên TGS/máy khách".
  8. Khi nhận được 2 gói tin E và F, người sử dụng đã có đủ thông tin để nhận thực với máy chủ cung cấp dịch vụ SS. Máy khách gửi tới SS 2 gói tin:
    • Gói tin E thu được từ bước trước (trong đó có "Khóa phiên máy chủ/máy khách" mã hóa với khóa bí mật của SS).
    • Gói tin G: phần nhận thực mới, bao gồm chỉ danh người sử dụng, thời điểm yêu cầu và được mã hóa với "Khóa phiên máy chủ/máy khách".
  9. SS giải mã "Vé" bằng khóa bí mật của mình và gửi gói tin sau tới người sử dụng để xác nhận định danh của mình và khẳng định sự đồng ý cung cấp dịch vụ:
    • Gói tin H: Thời điểm trong gói tin yêu cầu dịch vụ cộng thêm 1, mã hóa với "Khóa phiên máy chủ/máy khách".
  10. Máy khách giải mã gói tin xác nhận và kiểm tra thời gian có được cập nhật chính xác. Nếu đúng thì người sử dụng có thể tin tưởng vào máy chủ SS và bắt đầu gửi yêu cầu sử dụng dịch vụ.
  11. Máy chủ cung cấp dịch vụ cho người sử dụng.

Tài liệu tham khảo

WikiPedia: Giao thức Kerberos ftp://athena-dist.mit.edu/pub/kerberos/doc/krb_evo... http://www.microsoft.com/windowsserver2003/technol... http://www.xml-dev.com/blog/index.php?action=viewt... http://gost.isi.edu/publications/kerberos-neuman-t... http://www.isi.edu/gost/brian/security/kerberos.ht... http://web.mit.edu/kerberos/ http://web.mit.edu/kerberos/www/dialogue.html http://www.lsv.ens-cachan.fr/spore/kerberos.html http://www.usdoj.gov/atr/cases/ms_tuncom/major/mtc... http://modauthkerb.sourceforge.net/index.html